﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace proyectoENS
{
    public class DALTutor
    {
        private static proyectoENSEntities db = new proyectoENSEntities();
        

        public static void guardarTutor(tutor unTutor, int idAlumno)
        {
            bool s = false;
            List<tutor> tmp = DALTutor.getTutores();
            foreach (tutor t in tmp)
            {
                if (t.dni == unTutor.dni)
                {
                    s = true;
                    unTutor.id = t.id;
                }
            }
            if (s == true)
            {
                tutorXalumno txa = new tutorXalumno();
                //{
                    txa.idAlumno = idAlumno;
                    txa.idTutor = unTutor.id;
                //};
                db.tutorXalumno.AddObject(txa);
                db.SaveChanges();
            }
            else
            {
                db.tutor.AddObject(unTutor);
                db.SaveChanges();
                tutorXalumno txa = new tutorXalumno()
                {
                    idAlumno = idAlumno,
                    idTutor = unTutor.id
                };
                db.tutorXalumno.AddObject(txa);
                db.SaveChanges();
            }
        }
        //Listar Tutores
        public static List<tutor> getTutores() 
        {
            List<tutor> lista = (from a in db.tutor
                                 select a).ToList<tutor>();
            return lista;
        }
        //Metodos de Busqueda


        //Esto es la busqueda por el id


        //public static List<tutor> getTutoresByDni(int id)
        //{
        //    var lista = (from a in db.tutorXalumno
        //                 where a.id == id
        //                 select a).ToList<tutorXalumno>();
        //    List<tutor> lista2 = new List<tutor>();
        //    foreach (tutorXalumno item in lista)
        //    {
        //        lista2 = (from b in db.tutor
        //                      where b.id == item.idTutor
        //                      select b).ToList<tutor>();
        //    }
        //    return lista2;
        //}
        public static List<tutor> getTutoresByApellido (string apellido)
        {
            var lista = (from a in db.tutor
                         where a.apellidos.StartsWith(apellido)
                         select a).ToList<tutor>();
            return lista;
        }
        public static List<tutor> getTutoresByDniTutor(string dni)
        {
            var lista = (from a in db.tutor
                         where a.dni.StartsWith(dni)
                         select a).ToList<tutor>();
            return lista;
        }
        public static List<tutor> getTutoresByDni(string dni)
        {
            int id;
            id = (from a in db.Alumnos
                       where a.dni == dni
                       select a.id).First<int>();
            List<tutor> var = (from x in db.tutorXalumno
                               join t in db.tutor
                               on x.idTutor equals t.id
                               where x.idAlumno == id
                               select t).ToList<tutor>();
            return var;
        }
        public static void elminarTutor(tutor unTutor, int idAlumno)
        {
            List<tutorXalumno> temp = (from x in db.tutorXalumno
                                       where x.idTutor == unTutor.id
                                       select x).ToList<tutorXalumno>();
            foreach (tutorXalumno t in temp)
            {
                if (t.idAlumno == idAlumno)
                db.tutorXalumno.DeleteObject(t);
            }
            if (temp.Count == 1)
            db.tutor.DeleteObject(unTutor);
            db.SaveChanges();
        }
        public static int editTutor(tutor unTutor) 
        { 
            var temp=(from a in db.tutor
                      where a.id == unTutor.id
                      select a).FirstOrDefault<tutor>();
            temp.dni = unTutor.dni;
            temp.apellidos = unTutor.apellidos;
            temp.domicilio = unTutor.domicilio;
            temp.lugarTrabajo = unTutor.lugarTrabajo;
            temp.telefono1 = unTutor.telefono1;
            temp.telefono2 = unTutor.telefono2;
            temp.telefonoTrabajo = unTutor.telefonoTrabajo;
            temp.mail = unTutor.mail;
            temp.nombres = unTutor.nombres;
            temp.id = unTutor.id;
            return db.SaveChanges();
        }
    }
}
